package model

import (
	"gorm.io/gorm"
	"smart-health-platforms/config"
	"time"
)

// 权限表
type Permissions struct {
	Id                    int            `gorm:"column:id;type:bigint;comment:权限id;primaryKey;not null;" json:"id"`                                        // 权限id
	PermissionName        string         `gorm:"column:permission_name;type:varchar(50);comment:权限名称;not null;" json:"permission_name"`                    // 权限名称
	PermissionDescription string         `gorm:"column:permission_description;type:varchar(255);comment:权限介绍;" json:"permission_description"`              // 权限介绍
	CreatedAt             time.Time      `gorm:"column:created_at;type:datetime(3);comment:创建时间;not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"` // 创建时间
	UpdatedAt             time.Time      `gorm:"column:updated_at;type:datetime(3);comment:修改时间;not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"` // 修改时间
	DeletedAt             gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);comment:删除时间;default:NULL;" json:"deleted_at"`                          // 删除时间
}

func (p *Permissions) TableName() string {
	return "permissions"
}

// 创建权限
func (p *Permissions) Create() error {
	return config.DB.Create(&p).Error
}

// 根据id获取权限
func (p *Permissions) GetPermissionsInfoId() error {
	return config.DB.Where("id = ?", p.Id).Limit(1).Find(&p).Error
}
